iT邦幫忙

2024 iThome 鐵人賽

DAY 6
0
Security

picoCTF 刷題分享系列 第 6

picoCTF 刷題分享---Day 6(刷題去)

  • 分享至 

  • xImage
  •  

今天來到GDB baby step 3啦!這裡的baby是真的baby啊!!確實比較輕鬆啦


題目:GDB baby step 3

  1. You'll need to breakpoint the instruction after the memory load.
  2. Use the gdb command x/4xb addr with the memory location as the address addrto examine. GDB manual page.
  3. Any registers in addr should be prepended with $ like $rbp.
  4. Don't use square brackets for addr.
  5. What is endianness?
    解題思路:
  • 先用$ file debugger0_c
  • 查看內容
      1. 是個ELF
      1. LSB最低有效位(意思儲存方向是由右到左
  • 先$ gdb debugger0_c
  • $ info function
  • $ disas main
  • $ b main
  • $ layout asm
  • $ r
  • $ b *0x40111f(break pop rbp)
  • $ c
  • $ info rigister eax
  • $ x/4xb $rbp-4
  • 就可以得到 0xaa 0xbb 0xcc 0xdd
  • 格式:picoCTF{0xaabbccdd}
    恭喜成功啦
    換到這系列的最後一題吧

題目:GDB baby step 3

A function can be referenced by either its name or its starting address in gdb.

前提須知:

  • 「Step Over」(ni)執行目前程式碼行並在下一行程式碼處停止
  • 「Step Into」(si)深入挖掘,進入目前程式碼行呼叫的函數。
    解題思路:
  • 先用$ file debugger0_d
  • 查看內容
      1. 是個ELF
      1. LSB最低有效位(意思儲存方向是由右到左
  • 先加上$ chmod +x debugger0_d
  • $ gdb debugger0_d
  • $ b main
  • ni(或是直接按enter鍵)直到遇到
  • https://ithelp.ithome.com.tw/upload/images/20240920/20164155dU5vbX2zUg.png
  • 遇到call這行
  • 按si進到func1 func.裡面會看到
  • https://ithelp.ithome.com.tw/upload/images/20240920/20164155UEx00DKLU1.png
  • 會看到eax *= $0x3269
  • 這就是題目要的常數啦!!
  • 但我們要記得變為十進位
  • 所以按q退出gdb
  • 並輸入print/d 0x3269
  • 就會出現num啦
  • 格式:picoCTF{num}

恭喜各位完整完成了一整個系列的reverse啦!!希望各位有看懂我在打什麼🤣🤣
那下個系列我會想要的是單題單題的因為系列的有點風險我可能也不會🤣🤣


上一篇
picoCTF 刷題分享---Day 5(刷題去)
下一篇
picoCTF 刷題分享---Day 7(刷題去)
系列文
picoCTF 刷題分享30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言